package wikipedia
{
	import modelos.Utiles;

	public class WikiContenido
	{
		//================================================================================
		private var obj : Object;
		//================================================================================

		//--------------------------------------------------------------------------------
		public function WikiContenido()
		{
			obj = {};
		}

		//================================================================================
		//INTERFACE
		//================================================================================

		//--------------------------------------------------------------------------------
		public function toString():String
		{
			var children : String = "";
			
			var claves = obj.children.Claves;
			
			for (var i:int=0; i<claves.length; i++)
			{
				if (i!=0) children += ",";
				
				var subobj = obj.children.Valor(claves[i]);
				var contenido = new WikiContenido();
				contenido.AsignarValor([], subobj.titulo, subobj.texto, subobj.links, subobj.refs, subobj.children)
					
				children += contenido.toString();
			}

			return Utiles.StringFormat(
				"{\n\"titulo\":\"{0}\",\n\"texto\":\"{1}\",\n\"links\":\"{2}\",\n\"refs\":\"{3}\",\n\"children\":[{4}]\n}",
				obj.titulo,
				"TEXTO",//obj.texto,
				obj.links,
				obj.refs,
				children
			);
				
		}
		
		//================================================================================
		//ACCIONES
		//================================================================================

		//--------------------------------------------------------------------------------
		public function AsignarValor(indices : Array, titulo, texto, links, refs, children)
		{
			var valor : Object = { 'titulo':titulo, 'texto':texto, 'links':links, 'refs':refs, 'children':children };
			
			if (indices.length == 0)
			{
				obj = valor;
				return;
			}
			
			var obj_hijos = obj.children;
			
			for (var i:int=0; i<indices.length-1; i++)
			{
				var parte = indices[i];
				
				obj_hijos = obj_hijos.Valor(parte).children;
			}
			
			obj_hijos.Definir(indices[indices.length-1], valor);
		}
	}
}